SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE  [dbo].[SP_TMDOCU_PROV_Q10]
/*-------------------------------------------------------*/
/*---Empresa               OFISIS S.A.                --*/
/*---Cliente                               --*/
/*---Sistema               Tesoreria                  --*/
/*---M¸dulo                Empresa                    --*/
/*---Programa              ANALITICO DE CTAS. x PAGOAR--*/
/*---Script                SP_TMDOCU_PROV_Q10.sql     --*/
/*---Nombre SP             SP_TMDOCU_PROV_Q10         --*/
/*---Desarrollado por      REYNALDO MENACHO LUYO      --*/
/*---Fecha Creaci¸n        20/11/2001                 --*/
/*---Base Datos            SQL_SERVER               --*/
/*---Versi¸n               2005                       --*/
/*---Invoca a SP                                      --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Modificado 1 por           --*/
/*---Fecha Modificaci¸n         --*/ 
/*---Detalle Modificaci¸n       --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*--- Drop Proc SP_TMDOCU_PROV_Q10                      --*/
/*---Grant all on SP_TMDOCU_PROV_Q10 to public         --*/ 
/*---SP_TMDOCU_PROV_Q10 '01',NULL, "'BOL' , FAC' , 'FAE' , 'N/C' , 'N/D'","'MER',  'NAC'",'DOL','2001/09/01','2002/01/31', 'R','1', 'P', 'D'   --*/
/*---SP_TMDOCU_PROV_Q10 '01', NULL,  "'ACE' , 'ACT' , 'CAR'", "'MER',  'NAC'", 'SOL','2001/08/01','2002/01/31', 'R','1', 'P', 'D'   --*/
/*-------------------------------------------------------*/

@ISCO_EMPR  TD_VC_002,
@ISCO_PROV  TD_VC_020,
@ISDE_CODI varchar(500),
@ISDE_TIPO_PROV varchar(500),
@ISCO_MONE  TD_VC_003,
@IDFE_INIC  TD_DT_001,
@IDFE_FINA  TD_DT_001,
@ISTI_DOCU TD_VC_001,
@ISDE_ORDE TD_VC_001,
@ISTI_AUXI_PROV TD_VC_001,
@ISTI_REPO  TD_VC_001
 
AS 

CREATE TABLE #TWDOCU_PROV_Q10_1 
 ( CO_EMPR      varchar(3) NULL,
   CO_TIPO_DOCU varchar(3) NULL ,
   NU_DOCU_PROV varchar(20) NULL,
   CO_PROV varchar(20) NULL ,
   FE_EMIS datetime NULL,
   FE_PAGO datetime NULL,
   CO_MONE varchar(03) NULL,
   FA_TIPO_CAMB numeric(9,4) NULL,
   IM_COMP numeric(16,4) DEFAULT 0,
   IM_CHED numeric(16,4) DEFAULT 0,
   IM_RENO numeric(16,4) DEFAULT 0,
   IM_PAGO numeric(16,4) DEFAULT 0,
   IM_LETR numeric(16,4) DEFAULT 0,
   IM_ANTC numeric(16,4) DEFAULT 0,
   IM_AJUS numeric(16,4) DEFAULT 0,
   IM_APLI numeric(16,4) DEFAULT 0,
   TI_DETA varchar(2) NULL)
  
CREATE INDEX IX_TWDOCU_PROV_Q10_1 
ON #TWDOCU_PROV_Q10_1 (CO_EMPR, FE_EMIS, CO_TIPO_DOCU, NU_DOCU_PROV)
WITH FILLFACTOR = 70

CREATE INDEX IX_TWDOCU_PROV_Q10_2 
ON #TWDOCU_PROV_Q10_1 (CO_EMPR, FE_EMIS, NU_DOCU_PROV)
WITH FILLFACTOR = 70

CREATE TABLE #TWDOCU_PROV_Q10_2 
 ( CO_EMPR      varchar(3) NULL,
   CO_PROV varchar(20) NULL, 
   NU_DOCU_PROV varchar(20) NULL, 
   CO_TIPO_DOCU varchar(3) NULL,
   IM_SAIN numeric(16,4) NULL,
   IM_SAIN_EXTR numeric(16,4) NULL,
   IM_SAIN_NETO numeric(16,4) NULL)

CREATE TABLE #TWDOCU_PROV_Q10_2A
 ( CO_EMPR      varchar(3) NULL,
   CO_PROV varchar(20) NULL, 
   NU_DOCU_PROV varchar(20) NULL, 
   CO_TIPO_DOCU varchar(3) NULL,
   IM_SAIN numeric(16,4) NULL,
   IM_SAIN_EXTR numeric(16,4) NULL,
   IM_SAIN_NETO numeric(16,4) NULL)

CREATE TABLE #TWDOCU_PROV_Q10_3 
 ( CO_EMPR      varchar(3) NULL,
   CO_TIPO_DOCU varchar(3) NULL,
   NU_DOCU_PROV varchar(20) NULL,
   CO_PROV varchar(20) NULL ,
   FE_EMIS datetime NULL,
   FE_PAGO datetime NULL,
   CO_MONE varchar(03) NULL,
   FA_TIPO_CAMB numeric(9,4) NULL,
   IM_SAIN numeric(16,4) DEFAULT 0,
   IM_COMP numeric(16,4) DEFAULT 0,
   IM_CHED numeric(16,4) DEFAULT 0,
   IM_RENO numeric(16,4) DEFAULT 0,
   IM_PAGO numeric(16,4) DEFAULT 0,
   IM_LETR numeric(16,4) DEFAULT 0,
   IM_ANTC numeric(16,4) DEFAULT 0,
   IM_AJUS numeric(16,4) DEFAULT 0,
   IM_AJUS_DICA numeric(16,4) DEFAULT 0,
   IM_APLI numeric(16,4) DEFAULT 0,
   IM_CONV numeric(16,4) DEFAULT 0)

DECLARE 

@VSTI_SALD TD_VC_020,
@VSFL_FECH TD_VC_020,
@VSDE_ORDE TD_VC_100,
@VNNU_ANNO_INIC TD_IN_001,
@VNNU_MESE_INIC TD_IN_001,
@VNNU_ANNO_FINA TD_IN_001,
@VNNU_MESE_FINA TD_IN_001,
@VNNU_NULL TD_IN_001,

@CSCO_EMPR TD_VC_002,
@CSCO_PROV TD_VC_020,
@CSCO_TIPO_DOCU TD_VC_003,
@CSNU_DOCU_PROV TD_VC_020,
@CNIM_COMP  TD_NU_016_004, 
@CNIM_CHED TD_NU_016_004,
@CNIM_RENO TD_NU_016_004,
@CNIM_PAGO TD_NU_016_004,
@CNIM_LETR TD_NU_016_004,
@CNIM_ANTC TD_NU_016_004,
@CNIM_AJUS TD_NU_016_004,
@CNIM_APLI TD_NU_016_004,

@OSTI_DOCU_LETR TD_VC_003 
--@VSDE_CODI  VARCHAR(500)

SELECT @VNNU_ANNO_INIC = YEAR (@IDFE_INIC)
SELECT @VNNU_MESE_INIC = MONTH (@IDFE_INIC)

SELECT @VNNU_ANNO_FINA = YEAR (@IDFE_FINA)
SELECT @VNNU_MESE_FINA = MONTH (@IDFE_FINA)

IF @ISDE_ORDE = '1'
     SELECT @VSDE_ORDE = ' ORDER BY T1.CO_EMPR, T1.CO_PROV '
ELSE
 SELECT @VSDE_ORDE = ' ORDER BY T1.CO_EMPR, T3.NO_AUXI '

IF @ISTI_REPO = 'D'
 SELECT @VSDE_ORDE = @VSDE_ORDE + ', T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV '


IF @ISTI_DOCU = 'R'
BEGIN

-- TIPOS DE DETALLE(TI_DETA = '1' AL '7')
--1.- DOCS DE REGISTRO DE COMPAS
--2.- CHEQUES DEVUELTOS 'CHD'
--3.- PAGOS BANCOS  
--4.- PAGOS CAJA  
--5.- LETRAS
--6.- ANTICIPOS BANCOS
--7.- ANTICIPOS CAJA
--8.- AJUSTES BANCOS
--9.- AJUSTES BANCOS
--10.- APLICAIONES
--11.- DEVOLUCION DE ANTICIPOS
--12.- RENDICION DE GASTOS

-- TMDOCU_PROV
--1.- DOCS DE REGISTRO DE COMPAS

    INSERT INTO #TWDOCU_PROV_Q10_1 
    (CO_EMPR, CO_TIPO_DOCU, CO_PROV, NU_DOCU_PROV, FE_EMIS, FE_PAGO, 
    CO_MONE, FA_TIPO_CAMB, IM_COMP, TI_DETA)
    Select T1.CO_EMPR, T1.CO_TIPO_DOCU , T1.CO_PROV, T1.NU_DOCU_PROV, T1.FE_REGI_COMP, T1.FE_PROG_PAGO, 
    T1.CO_MONE, T1.FA_TIPO_CAMB, ( PatIndex(T2.ST_SIGN,'S') - PatIndex(T2.ST_SIGN,'N'))*T1.IM_TOTA,
    '1'
    From  TMDOCU_PROV T1, TTDOCU_CNTB T2
    Where T1.CO_EMPR = @ISCO_EMPR
    AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
    AND PatIndex( + '%'+T1.CO_TIPO_DOCU+'%', + @ISDE_CODI )>0
    AND PatIndex( + '%'+T1.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
    And T1.FE_REGI_COMP <= @IDFE_FINA
    And T1.CO_ESTA_DOCU != 'ANU'
    AND T1.CO_TIPO_DOCU = T2.TI_DOCU
    AND T2.ST_REGI_COMP = 'S'

--2.- CHEQUES DEVUELTOS 'CHD'
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_PAGO, 
  CO_MONE, FA_TIPO_CAMB, IM_CHED, TI_DETA)
  Select T1.CO_EMPR, T1.CO_TIPO_DOCU , T1.NU_DOCU_PROV , T1.CO_PROV, T1.FE_EMIS, T1.FE_PROG_PAGO, 
  T1.CO_MONE, T1.FA_TIPO_CAMB, ( PatIndex(T2.ST_SIGN,'S') - PatIndex(T2.ST_SIGN,'N') )*-T1.IM_TOTA,
 '2'
  From  TMDOCU_PROV T1, TTDOCU_CNTB T2
  Where T1.CO_EMPR = @ISCO_EMPR
  AND   ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND   T1.CO_TIPO_DOCU = 'CHD'
  AND   PatIndex( + '%'+T1.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  And   T1.FE_REGI_COMP <= @IDFE_FINA
  And   T1.CO_ESTA_DOCU != 'ANU'
  AND   T1.CO_TIPO_DOCU = T2.TI_DOCU

--3.- PAGOS BANCOS  

  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)
  Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
  T1.CO_MONE_DOCU, T2.FA_TIPO_CAMB, 
  (PatIndex(T1.ST_CIER_DOCU, 'N')) * ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) * T1.IM_CONV_DOCU +  
  (PatIndex(T1.ST_CIER_DOCU, 'S')) * ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) * T1.IM_SALD_DOCU, 
  '3A'
  From   TDMOVI_BANC T1, TCMOVI_BANC T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.CO_TIPO_DOCU+'%', + @ISDE_CODI )>0 
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_UNID_CONC = T2.CO_UNID_CONC
  And    T1.CO_BANC = T2.CO_BANC  
  And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
  And    T1.AA_BNCO = T2.AA_BNCO
  And    T1.MM_BNCO = T2.MM_BNCO 
  And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
  And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
  AND    T1.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_ENTI = T4.CO_PROV
  AND    T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU
  AND    T1.NU_DOCU_ENTI = T4.NU_DOCU_PROV
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU
  AND    NOT EXISTS ( SELECT T6.CO_EMPR
         FROM TTTIOP_AJUS T6
         WHERE T6.CO_EMPR = T2.CO_EMPR
         AND  T6.CO_TIPO_OPER = T2.CO_TIPO_OPER)
  UNION ALL  --- DOCUMENTOS CANCELADOS POR APLICACIONES ---------
  Select T1.CO_EMPR, T1.CO_TIDO_DEST, T1.NU_DOCU_DEST, T1.CO_ENTI, T2.FE_AMAR,
         T4.CO_MONE, T2.FA_TIPO_CAMB, T1.IM_PAGO_DEST, '3B'
  From TDAMAR_OCPR t1, TCAMAR_OCPR t2, TMDOCU_PROV T4
  Where T4.CO_EMPR = @ISCO_EMPR 
  AND   ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND   PatIndex( + '%'+T4.CO_TIPO_DOCU+'%', + @ISDE_CODI )>0 
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  And	t2.FE_AMAR <= @IDFE_FINA
  And	t1.CO_EMPR = t4.CO_EMPR
  And	t1.CO_ENTI = t4.CO_PROV
  And 	t1.CO_TIDO_DEST = t4.CO_TIPO_DOCU
  And	t1.NU_DOCU_DEST = t4.NU_DOCU_PROV
  And	t1.CO_EMPR = t2.CO_EMPR
  And	t1.NU_AMAR = t2.NU_AMAR
  And	t2.TI_SITU != 'ANU' 

--4.- PAGOS CAJA

  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)
  Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
  T1.CO_MONE_DOCU, T2.FA_TIPO_CAMB,
  (PatIndex(T1.ST_CIER_DOCU, 'N')) * ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) * T1.IM_CONV_DOCU +  
  (PatIndex(T1.ST_CIER_DOCU, 'S')) * ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) * T1.IM_SALD_DOCU,
  '4'
  From   TDMOVI_CAJA T1, TCMOVI_CAJA T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    PatIndex( + '%'+T4.CO_TIPO_DOCU+'%', + @ISDE_CODI )>0 
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_CAJA = T2.CO_CAJA
  And    T1.AA_CAJA = T2.AA_CAJA
  And    T1.MM_CAJA = T2.MM_CAJA 
  And    T1.TI_MOVI = T2.TI_MOVI
  And    T1.NU_COMP_CAJA = T2.NU_COMP_CAJA
  And    T1.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_ENTI = T4.CO_PROV
  AND    T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU
  And    T1.NU_DOCU_ENTI = T4.NU_DOCU_PROV
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU
  AND    NOT EXISTS ( SELECT T6.CO_EMPR
      FROM TTTIOP_AJUS T6
   WHERE T6.CO_EMPR = T2.CO_EMPR
     AND  T6.CO_TIPO_OPER = T2.CO_TIPO_OPER)

--5.- LETRAS

  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_LETR, TI_DETA)
  Select T1.CO_EMPR, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.CO_PROV, T2.FE_CANJ,
  T4.CO_MONE, T2.FA_TIPO_CAMB,
  ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') )*T1.IM_CANJ_MDOC,
  '5'
  From   TDCANJ_PROV T1, TCCANJ_PROV T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL) 
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  AND    PatIndex( + '%'+T4.CO_TIPO_DOCU+'%', + @ISDE_CODI )>0 
  AND    T4.CO_TIPO_DOCU != 'CRT'
  AND    T2.FE_CANJ <= @IDFE_FINA
  AND    T1.CO_EMPR = T2.CO_EMPR
  AND    T1.CO_PROV = T2.CO_PROV
  AND    T1.NU_CANJ = T2.NU_CANJ
  AND    T2.TI_SITU = 'ACT' 
  AND    T1.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_PROV = T4.CO_PROV
  AND    T1.CO_TIPO_DOCU = T4.CO_TIPO_DOCU 
  AND    T1.NU_DOCU_PROV = T4.NU_DOCU_PROV
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU
  AND    T5.ST_REGI_COMP = 'S' 


--6.- ANTICIPOS POR BANCOS
INSERT INTO #TWDOCU_PROV_Q10_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
CO_MONE, FA_TIPO_CAMB, IM_ANTC, TI_DETA)
Select T1.CO_EMPR, T1.CO_TIPO_DOCU, T1.NU_DOCU_BANC, T1.CO_ENTI, T1.FE_OPER,
T2.CO_MONE, T1.FA_TIPO_CAMB, T1.IM_MOVI, 
'6'
From  TCMOVI_BANC T1, TMCNTA_BANC T2, TTTIPO_OPER T6, TMAUXI_EMPR T3
Where  T1.CO_EMPR = @ISCO_EMPR
AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_ENTI) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND    PatIndex( + '%'+T3.TI_CLIE+'%', + @ISDE_TIPO_PROV )>0 
AND     T1.CO_TIPO_OPER = T6.CO_TIPO_OPER
AND     T6.ST_AUXI_0002 = 'S'
And     T1.TI_MOVI_BANC = 'E' 
And     T1.TI_ENTI = @ISTI_AUXI_PROV
And     T1.FE_OPER  <= @IDFE_FINA
And     T1.TI_SITU = 'ACT' 
And     T1.CO_EMPR = T2.CO_EMPR  
And     T1.CO_BANC = T2.CO_BANC  
And     T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
AND     T1.CO_EMPR = T3.CO_EMPR
AND     T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
AND     T1.CO_ENTI = T3.CO_AUXI_EMPR
UNION ALL   --PAGOS DE ANTICIPOS 'ANT'
Select T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T1.CO_ENTI, T2.FE_OPER,
  T1.CO_MONE_DOCU, T2.FA_TIPO_CAMB, T1.IM_CONV_DOCU, 
  '6A'
  From  TDMOVI_BANC T1, TCMOVI_BANC T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    T4.CO_TIPO_DOCU = 'ANT'
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  And    T1.TI_MOVI_BANC = 'E' 
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_UNID_CONC = T2.CO_UNID_CONC
  And    T1.CO_BANC = T2.CO_BANC  
  And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
  And    T1.AA_BNCO = T2.AA_BNCO
  And    T1.MM_BNCO = T2.MM_BNCO 
  And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
  And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
  AND    T1.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_ENTI = T4.CO_PROV
  AND    T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU
  AND    T1.NU_DOCU_ENTI = T4.NU_DOCU_PROV
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU
  UNION ALL 		-- APLICACION DE ANTICIPOS
  Select T1.CO_EMPR, T1.CO_TIDO_ORIG, T1.NU_DOCU_ORIG, T1.CO_ENTI, T2.FE_AMAR,
         T4.CO_MONE, T2.FA_TIPO_CAMB, -T1.IM_PAGO_ORIG, '6B'
  From   TDAMAR_OCPR T1, TCAMAR_OCPR T2, TMDOCU_PROV T4
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  AND 	 T4.CO_TIPO_DOCU = 'ANT'
  And	 T2.FE_AMAR <= @IDFE_FINA
  And    T1.CO_EMPR = T4.CO_EMPR
  And	 T1.CO_ENTI = T4.CO_PROV
  And 	 T1.CO_TIDO_ORIG = T4.CO_TIPO_DOCU
  And	 T1.NU_DOCU_ORIG = T4.NU_DOCU_PROV
  And	 T1.CO_EMPR = T2.CO_EMPR
  And	 T1.NU_AMAR = T2.NU_AMAR
  And	 T2.TI_SITU != 'ANU'


--7.- ANTICIPOS POR CAJA
INSERT INTO #TWDOCU_PROV_Q10_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
CO_MONE, FA_TIPO_CAMB, IM_ANTC, TI_DETA)
Select T1.CO_EMPR, T1.CO_TIPO_DOCU, T1.NU_DOCU, T1.CO_ENTI, T1.FE_OPER,
T2.CO_MONE, T1.FA_TIPO_CAMB, T1.IM_MOVI, '7'
From   TCMOVI_CAJA T1, TMCAJA T2, TTTIPO_OPER T6, TMAUXI_EMPR T3
Where  T1.CO_EMPR = @ISCO_EMPR
AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_ENTI) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND    PatIndex( + '%'+T3.TI_CLIE+'%', + @ISDE_TIPO_PROV )>0 
AND    T1.CO_TIPO_OPER = T6.CO_TIPO_OPER
AND    T6.ST_AUXI_0002 = 'S'
And    T1.TI_MOVI = 'E' 
And    T1.TI_ENTI = @ISTI_AUXI_PROV
And    T1.FE_OPER <= @IDFE_FINA
And    T1.TI_SITU = 'ACT'
And    T1.CO_EMPR = T2.CO_EMPR
And    T1.CO_CAJA = T2.CO_CAJA
AND    T1.CO_EMPR = T3.CO_EMPR
AND    T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
AND    T1.CO_ENTI = T3.CO_AUXI_EMPR
UNION ALL   --PAGOS DE ANTICIPOS 'ANT'
Select T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T1.CO_ENTI, T2.FE_OPER,
       T1.CO_MONE_DOCU, T2.FA_TIPO_CAMB, T1.IM_CONV_DOCU, '7'
  From   TDMOVI_CAJA T1, TCMOVI_CAJA T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( 'ANT',  @ISDE_CODI )>0 
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  And    T1.TI_MOVI = 'E'
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_CAJA = T2.CO_CAJA
  And    T1.AA_CAJA = T2.AA_CAJA
  And    T1.MM_CAJA = T2.MM_CAJA 
  And    T1.TI_MOVI = T2.TI_MOVI
  And    T1.NU_COMP_CAJA = T2.NU_COMP_CAJA
  And    T1.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_ENTI = T4.CO_PROV
  AND    T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU
  And    T1.NU_DOCU_ENTI = T4.NU_DOCU_PROV
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU



--8.- AJUSTES BANCOS
INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_AJUS, TI_DETA)
  Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
  T1.CO_MONE_DOCU, T2.FA_TIPO_CAMB, T1.IM_CONV_DOCU, 
  '8'
  From   TDMOVI_BANC T1, TCMOVI_BANC T2, TMAUXI_EMPR T3
  Where  T1.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_ENTI) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T3.TI_CLIE+'%', + @ISDE_TIPO_PROV )>0 
  And    T1.TI_MOVI_BANC = 'E' 
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_UNID_CONC = T2.CO_UNID_CONC
  And    T1.CO_BANC = T2.CO_BANC  
  And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
  And    T1.AA_BNCO = T2.AA_BNCO
  And    T1.MM_BNCO = T2.MM_BNCO 
  And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
  And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
  AND    T1.CO_EMPR = T3.CO_EMPR
  AND    T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  AND    T1.CO_ENTI = T3.CO_AUXI_EMPR
  AND    EXISTS (SELECT  T6.CO_EMPR
                 FROM    TTTIOP_AJUS T6
                 WHERE   T6.CO_EMPR = T2.CO_EMPR
                 AND     T6.CO_TIPO_OPER = T2.CO_TIPO_OPER)

--9.- AJUSTES CAJA

  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_AJUS, TI_DETA)
  Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
  T1.CO_MONE_DOCU, T2.FA_TIPO_CAMB, T1.IM_CONV_DOCU,
  '9'
  From   TDMOVI_CAJA T1, TCMOVI_CAJA T2, TMAUXI_EMPR T3
  Where T1.CO_EMPR = @ISCO_EMPR
  AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_ENTI) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T3.TI_CLIE+'%', + @ISDE_TIPO_PROV )>0 
  And    T1.TI_MOVI = 'E'
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_CAJA = T2.CO_CAJA
  And    T1.AA_CAJA = T2.AA_CAJA
  And    T1.MM_CAJA = T2.MM_CAJA 
  And    T1.TI_MOVI = T2.TI_MOVI
  And    T1.NU_COMP_CAJA = T2.NU_COMP_CAJA
  AND    T1.CO_EMPR = T3.CO_EMPR
  AND    T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  AND    T1.CO_ENTI = T3.CO_AUXI_EMPR
  AND  EXISTS (SELECT  T6.CO_EMPR
  FROM  TTTIOP_AJUS T6
  WHERE  T6.CO_EMPR = T2.CO_EMPR
    AND   T6.CO_TIPO_OPER = T2.CO_TIPO_OPER)


--10.- APLICACIONES
  --DOCUMENTOS

  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_APLI, TI_DETA)

  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T2.CO_ENTI, T1.FE_AMAR,
   T4.CO_MONE, T1.FA_TIPO_CAMB, T2.IM_PAGO_DEST* -1, '10'
  From   TCAMAR_OCPR T1 , TDAMAR_OCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where T4.CO_EMPR = @ISCO_EMPR
  AND  ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND   PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  AND   PatIndex(+'%'+T4.CO_TIPO_DOCU+'%',+ @ISDE_CODI) > 0 

  AND   T4.CO_TIPO_DOCU != 'OCM' 
  AND   T4.CO_TIPO_DOCU != 'OSR'
  And   T4.CO_TIPO_DOCU != 'ANT' 
  And   T1.FE_AMAR  <= @IDFE_FINA
  AND   T1.TI_SITU = 'ACT'
  AND   T1.CO_EMPR = T2.CO_EMPR  
  AND   T1.NU_AMAR = T2.NU_AMAR
  AND   T2.CO_EMPR = T4.CO_EMPR
  AND   T2.CO_ENTI = T4.CO_PROV
  AND   T2.CO_TIDO_DEST = T4.CO_TIPO_DOCU
  AND   T2.NU_DOCU_DEST = T4.NU_DOCU_PROV
  AND   (NU_REND_GAST IS NULL OR NU_REND_GAST = '')
  AND   T4.CO_ESTA_DOCU != 'ANU' 
  AND   T4.CO_TIPO_DOCU = T5.TI_DOCU

  UNION ALL --IMPORTE DEL ANTICIPO QUE HA SIDO APLICADO

  Select T2.CO_EMPR, T2.CO_TIPO_DOCU, T2.NU_DOCU_BANC, T2.CO_ENTI, MAX(T7.FE_AMAR_DETA),
  T3.CO_MONE, MAX(T2.FA_TIPO_CAMB), ISNULL( SUM(T7.IM_DETA_NEGA), 0), 
  '10'
  From  TCMOVI_BANC T2, TMCNTA_BANC T3, TTTIPO_OPER T5, TCAMAR_ANTC T6
  LEFT OUTER JOIN TDAMAR_ANTC T7
  ON  T6.CO_EMPR = T7.CO_EMPR 
  AND T6.NU_AMAR = T7.NU_AMAR, TMAUXI_EMPR T8
  Where T2.CO_EMPR = @ISCO_EMPR
  AND  ((@ISCO_PROV IS NOT NULL AND RTRIM(T2.CO_ENTI) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND   PatIndex( + '%'+T8.TI_CLIE+'%', + @ISDE_TIPO_PROV )>0 
  AND    EXISTS (SELECT T1.CO_TIPO_DOCU
  FROM  #TWDOCU_PROV_Q10_1 T1
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND    T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU 
  AND    T1.NU_DOCU_PROV = T2.NU_DOCU_BANC
  AND    T1.CO_PROV = T2.CO_ENTI)
  And    T2.TI_MOVI_BANC = 'I' 
  And    T2.TI_ENTI = @ISTI_AUXI_PROV
  And    T6.FE_AMAR  <= @IDFE_FINA
  And    T7.FE_AMAR_DETA  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT'
  And    T2.CO_EMPR = T3.CO_EMPR  
  And    T2.CO_BANC = T3.CO_BANC  
  And    T2.NU_CNTA_BANC  = T3.NU_CNTA_BANC
  AND    T2.CO_EMPR = T5.CO_EMPR
  AND    T2.CO_TIPO_OPER = T5.CO_TIPO_OPER
  AND    T5.ST_AUXI_0002 = 'S' 
  AND    T6.TI_SITU = 'ACT'
  AND    T2.CO_EMPR = T6.CO_EMPR
  And    T2.CO_BANC = T6.CO_BANC  
  And    T2.NU_CNTA_BANC  = T6.NU_CNTA_BANC
  And    T2.AA_BNCO = T6.AA_BNCO
  And    T2.MM_BNCO = T6.MM_BNCO
  And    T2.NU_COMP_BANC = T6.NU_COMP_BANC
  AND    T2.CO_EMPR = T8.CO_EMPR
  AND    T8.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  AND    T2.CO_ENTI = T8.CO_AUXI_EMPR
  GROUP BY T2.CO_EMPR, T2.CO_TIPO_DOCU, T2.NU_DOCU_BANC, T2.CO_ENTI, T3.CO_MONE, 
           T2.CO_BANC, T2.NU_CNTA_BANC, T2.NU_COMP_BANC  

  UNION ALL  -- O/C, ANT APLICADOS 

  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T4.CO_PROV, T1.FE_AMAR,
         T4.CO_MONE, T1.FA_TIPO_CAMB, T2.IM_PAGO_ORIG, '10'
  From  TCAMAR_OCPR T1 , TDAMAR_OCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where T4.CO_EMPR = @ISCO_EMPR
  AND   ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND   PatIndex(+'%'+T4.CO_TIPO_DOCU+'%',+ @ISDE_CODI) > 0 
  AND   PatIndex(+'%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  AND   T1.CO_EMPR = T4.CO_EMPR
  AND   (T4.CO_TIPO_DOCU = 'ANT'  OR T4.CO_TIPO_DOCU = 'OCM')
  And   T1.FE_AMAR  <= @IDFE_FINA
  AND   T1.TI_SITU = 'ACT'
  AND   T1.CO_EMPR = T2.CO_EMPR  
  AND   T1.NU_AMAR = T2.NU_AMAR
  AND   T2.CO_EMPR = T4.CO_EMPR
  AND   T2.CO_ENTI = T4.CO_PROV
  AND   T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU
  AND   T2.NU_DOCU_ORIG = T4.NU_DOCU_PROV
  And   T1.TI_SITU != 'ANU'
  AND   T4.CO_ESTA_DOCU != 'ANU' 
  AND   T4.CO_TIPO_DOCU = T5.TI_DOCU 


--APLICACION DE N/C
--DOCUMENTOS  
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_APLI, TI_DETA) 

  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T4.CO_PROV, T1.FE_AMAR,
  T4.CO_MONE, T1.FA_TIPO_CAMB, (PATINDEX(T2.ST_CIER_DOCU, 'N') * T2.IM_PAGO_DEST +
  PATINDEX(T2.ST_CIER_DOCU, 'S') * T2.IM_SALD_DEST )* -1, '10'
  From   TCAMAR_NCPR T1 , TDAMAR_NCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  AND    PatIndex(+'%'+T4.CO_TIPO_DOCU+'%',+ @ISDE_CODI) > 0 
  AND    T4.CO_TIPO_DOCU != 'N/C'
  And    T1.FE_AMAR  <= @IDFE_FINA
  AND    T1.TI_SITU = 'ACT' 
  AND    T1.CO_EMPR = T2.CO_EMPR  
  AND    T1.NU_AMAR = T2.NU_AMAR
  AND    T2.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_PROV = T4.CO_PROV
  AND    T2.CO_TIDO_DEST = T4.CO_TIPO_DOCU
  AND    T2.NU_DOCU_DEST = T4.NU_DOCU_PROV
  AND    (NU_REND_GAST IS NULL OR NU_REND_GAST = '')
  AND    T4.CO_ESTA_DOCU != 'ANU' 
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU

  UNION ALL -- NOTAS DE CREDITO APLICADAS 

  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T4.CO_PROV, T1.FE_AMAR,
  T4.CO_MONE, T1.FA_TIPO_CAMB, T2.IM_PAGO_ORIG, '10'
  From   TCAMAR_NCPR T1 , TDAMAR_NCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  AND    PatIndex(+'%'+T4.CO_TIPO_DOCU+'%',+ @ISDE_CODI) > 0 
  AND    T1.CO_EMPR = T4.CO_EMPR
  AND    T4.CO_TIPO_DOCU = 'N/C'
  And    T1.FE_AMAR  <= @IDFE_FINA
  AND    T1.TI_SITU = 'ACT'
  AND    T2.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_PROV = T4.CO_PROV
  AND    T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU 
  AND    T2.NU_DOCU_ORIG = T4.NU_DOCU_PROV 
  AND    T1.CO_EMPR = T2.CO_EMPR  
  AND    T1.NU_AMAR = T2.NU_AMAR
  AND    T4.CO_ESTA_DOCU != 'ANU' 
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU 


--11.- DEVOLUCION DE ANTICIPOS
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_APLI, TI_DETA)

  Select T1.CO_EMPR, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T4.CO_PROV, T2.FE_OPER,
         T4.CO_MONE, T2.FA_TIPO_CAMB, T1.IM_DEVO, '11'
  From   TDDEVO_ANTC T1, TCMOVI_BANC T2, TMCNTA_BANC T3, TMDOCU_PROV T4, TTDOCU_CNTB T5
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0 
  AND    (T4.CO_TIPO_DOCU = 'ANT' OR    T4.CO_TIPO_DOCU = 'OCM')
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_UNID_CONC = T2.CO_UNID_CONC
  And    T1.CO_BANC = T2.CO_BANC  
  And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
  And    T1.AA_BNCO = T2.AA_BNCO
  And    T1.MM_BNCO = T2.MM_BNCO 
  And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
  And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
  And    T1.CO_EMPR = T3.CO_EMPR  
  And    T1.CO_BANC = T3.CO_BANC  
  And    T1.NU_CNTA_BANC  = T3.NU_CNTA_BANC
  AND    T2.CO_EMPR = T4.CO_EMPR
  AND    T2.CO_ENTI = T4.CO_PROV
  AND    T1.CO_TIPO_DOCU = T4.CO_TIPO_DOCU
  AND    T1.NU_DOCU_PROV = T4.NU_DOCU_PROV 
  AND    T4.CO_TIPO_DOCU = T5.TI_DOCU

--12.- RENDICION DE GASTOS
INSERT INTO #TWDOCU_PROV_Q10_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
 CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)
 SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T2.CO_ENTI, T1.FE_REND_GAST,
 T2.CO_MONE, T2.FA_CAMB_DOCU, T2.IM_DOCU, '12'
 From   TCREND_GAST T1 , TDREND_GAST T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
 Where  T4.CO_EMPR = @ISCO_EMPR
 AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
 AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
 AND    PatIndex(+'%'+T4.CO_TIPO_DOCU+'%',+ @ISDE_CODI) > 0 
 And    T1.FE_REND_GAST  <= @IDFE_FINA
 AND    T1.TI_SITU = 'ACT' 
 AND    T1.CO_EMPR = T2.CO_EMPR  
 AND    T1.NU_REND_GAST = T2.NU_REND_GAST
 AND    T2.CO_EMPR = T4.CO_EMPR
 AND    T2.CO_ENTI = T4.CO_PROV 
 AND    T2.CO_TIPO_DOCU = T4.CO_TIPO_DOCU
 AND    T2.NU_DOCU_PROV = T4.NU_DOCU_PROV
 AND    T4.CO_ESTA_DOCU != 'ANU' 
 AND    T4.CO_TIPO_DOCU = T5.TI_DOCU


IF @ISCO_MONE = 'DOL'
 UPDATE  #TWDOCU_PROV_Q10_1
 SET IM_COMP = ROUND(IM_COMP / FA_TIPO_CAMB, 2),
  IM_CHED = ROUND(IM_CHED / FA_TIPO_CAMB, 2),
  IM_PAGO = ROUND(IM_PAGO / FA_TIPO_CAMB, 2),
  IM_LETR = ROUND(IM_LETR / FA_TIPO_CAMB, 2),
  IM_ANTC = ROUND(IM_ANTC / FA_TIPO_CAMB, 2),
  IM_AJUS = ROUND(IM_AJUS / FA_TIPO_CAMB, 2),
  IM_APLI = ROUND(IM_APLI / FA_TIPO_CAMB, 2)
 WHERE  CO_MONE != @ISCO_MONE
ELSE
 UPDATE #TWDOCU_PROV_Q10_1
 SET IM_COMP = ROUND(IM_COMP * FA_TIPO_CAMB, 2),
  IM_CHED = ROUND(IM_CHED * FA_TIPO_CAMB, 2),
  IM_PAGO = ROUND(IM_PAGO * FA_TIPO_CAMB, 2),
  IM_LETR = ROUND(IM_LETR * FA_TIPO_CAMB, 2),
  IM_ANTC = ROUND(IM_ANTC * FA_TIPO_CAMB, 2),
  IM_AJUS = ROUND(IM_AJUS * FA_TIPO_CAMB, 2),
  IM_APLI = ROUND(IM_APLI * FA_TIPO_CAMB, 2)
 WHERE CO_MONE != @ISCO_MONE

--SELECT * FROM #TWDOCU_PROV_Q10_1
--ORDER BY CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV

-- SALDOS INICIALES

  INSERT INTO #TWDOCU_PROV_Q10_2(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_SAIN) 
  SELECT T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, SUM(ISNULL(T1.IM_COMP,0)) + 
 SUM(ISNULL(T1.IM_CHED,0)) - SUM(ISNULL(T1.IM_PAGO,0)) - SUM(ISNULL(T1.IM_LETR,0)) - 
 SUM(ISNULL(T1.IM_ANTC,0)) + SUM(ISNULL(T1.IM_APLI,0)) - SUM(ISNULL(T1.IM_AJUS,0))
  FROM #TWDOCU_PROV_Q10_1 T1 --(INDEX = IX_TWDOCU_PROV_Q10_1)
  WHERE T1.CO_EMPR = @ISCO_EMPR
  AND T1.FE_EMIS < @IDFE_INIC
  GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV

  INSERT INTO #TWDOCU_PROV_Q10_2A(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_SAIN) 
  SELECT T2.CO_EMPR, T2.CO_AUXI_EMPR, T2.TI_DOCU, T2.NU_DOCU, 
  PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * 
  ISNULL(SUM(PATINDEX(T2.TI_OPER, 'A')* T2.IM_MVTO_CNTB) - SUM(PATINDEX(T2.TI_OPER, 'C')* T2.IM_MVTO_CNTB),0)
  FROM  OFIINTE..TXMVTO_AJTE T2 --INDICE
  WHERE T2.CO_OPRC_CNTB = '013'
  AND  T2.CO_UNID_CNTB = '001'
  AND  (T2.NU_ANNO < @VNNU_ANNO_INIC
  OR  (T2.NU_ANNO = @VNNU_ANNO_INIC
  AND  T2.NU_MESE < @VNNU_MESE_INIC))
  AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  GROUP BY T2.CO_EMPR, T2.TI_AUXI_EMPR, T2.CO_AUXI_EMPR, T2.TI_DOCU, T2.NU_DOCU

 UPDATE #TWDOCU_PROV_Q10_2
 SET IM_SAIN = T1.IM_SAIN + T2.IM_SAIN 
 FROM #TWDOCU_PROV_Q10_2 T1, #TWDOCU_PROV_Q10_2A T2
 WHERE T1.CO_EMPR = T2.CO_EMPR 
 AND   T1.CO_PROV = T2.CO_PROV 
 AND   T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU 
 AND   T1.NU_DOCU_PROV = T2.NU_DOCU_PROV 



UPDATE  #TWDOCU_PROV_Q10_2
SET  IM_SAIN = 0
WHERE  @ISCO_MONE != 'DOL'
AND ABS(IM_SAIN) <= 0.02
AND  ABS(IM_SAIN) > 0


INSERT INTO #TWDOCU_PROV_Q10_3(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_SAIN,
 IM_COMP, IM_CHED, IM_PAGO, IM_LETR, IM_ANTC, IM_APLI, IM_AJUS, IM_AJUS_DICA)
SELECT  T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, MAX(T2.IM_SAIN), SUM(ISNULL(T1.IM_COMP,0)),
 SUM(ISNULL(T1.IM_CHED,0)), SUM(ISNULL(T1.IM_PAGO,0)), SUM(ISNULL(T1.IM_LETR,0)), SUM(ISNULL(T1.IM_ANTC,0)), 
 SUM(ISNULL(T1.IM_APLI,0)), SUM(ISNULL(T1.IM_AJUS,0)),
 PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T3.IM_MVTO_CONT 
FROM #TWDOCU_PROV_Q10_1 T1 --(INDEX = IX_TWDOCU_PROV_Q10_1)
LEFT OUTER JOIN (SELECT ISNULL(SUM(PATINDEX(T2.TI_OPER, 'ABO')* T2.IM_MVTO_CNTB) - SUM(PATINDEX(T2.TI_OPER, 'CAR')* T2.IM_MVTO_CNTB),0) IM_MVTO_CONT
  FROM  OFIINTE..TXMVTO_AJTE T2 
  WHERE T2.CO_OPRC_CNTB = '013'
  AND  T2.CO_UNID_CNTB = '001'
  AND  (T2.NU_ANNO > @VNNU_ANNO_INIC
  OR  (T2.NU_ANNO = @VNNU_ANNO_INIC
  AND  T2.NU_MESE >= @VNNU_MESE_INIC))
  AND  (T2.NU_ANNO < @VNNU_ANNO_FINA
  OR  (T2.NU_ANNO = @VNNU_ANNO_FINA
  AND  T2.NU_MESE <= @VNNU_MESE_FINA))
  AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
  GROUP BY T2.CO_EMPR, T2.TI_AUXI_EMPR, T2.CO_AUXI_EMPR, T2.TI_DOCU, T2.NU_DOCU)T3
ON  T3.CO_EMPR = T1.CO_EMPR
AND T3.CO_AUXI_EMPR = T1.CO_PROV
AND T3.TI_DOCU = T1.CO_TIPO_DOCU
AND T3.NU_DOCU = T1.NU_DOCU_PROV
INNER JOIN #TWDOCU_PROV_Q10_2 T2
ON  T1.CO_EMPR = T2.CO_EMPR
AND T1.CO_PROV = T2.CO_PROV
AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU
AND T1.NU_DOCU_PROV = T2.NU_DOCU_PROV
Where T1.FE_EMIS >= @IDFE_INIC
GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV
UNION ALL
SELECT T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.IM_SAIN, 0,
0, 0, 0, 0, 0, 0,

PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T5.IM_MVTO_CONT

FROM #TWDOCU_PROV_Q10_2 T1
LEFT OUTER JOIN
(SELECT ISNULL(SUM(PATINDEX(T2.TI_OPER, 'ABO')* T2.IM_MVTO_CNTB) - SUM(PATINDEX(T2.TI_OPER, 'CAR')* T2.IM_MVTO_CNTB),0) IM_MVTO_CONT
  FROM  OFIINTE..TXMVTO_AJTE T2 
  WHERE T2.CO_OPRC_CNTB = '013'
  AND  T2.CO_UNID_CNTB = '001'
  --AND  T2.NU_ANNO = @VNNU_ANNO
  --AND  T2.NU_MESE = @VNNU_MESE
  AND  (T2.NU_ANNO > @VNNU_ANNO_INIC
  OR  (T2.NU_ANNO = @VNNU_ANNO_INIC
  AND  T2.NU_MESE >= @VNNU_MESE_INIC))
  AND  (T2.NU_ANNO < @VNNU_ANNO_FINA
  OR  (T2.NU_ANNO = @VNNU_ANNO_FINA
  AND  T2.NU_MESE <= @VNNU_MESE_FINA))  
  GROUP BY T2.CO_EMPR, T2.TI_AUXI_EMPR, T2.CO_AUXI_EMPR, T2.TI_DOCU, T2.NU_DOCU) T5
ON  T5.CO_EMPR = T1.CO_EMPR
AND T5.TI_AUXI_EMPR = @ISTI_AUXI_PROV
AND T5.CO_AUXI_EMPR = T1.CO_PROV
AND T5.TI_DOCU = T1.CO_TIPO_DOCU
AND T5.NU_DOCU = T1.NU_DOCU_PROV 
WHERE  NOT EXISTS ( SELECT  T3.CO_EMPR, T3.CO_PROV, T3.CO_TIPO_DOCU, T3.NU_DOCU_PROV
   FROM  #TWDOCU_PROV_Q10_1 T3
   WHERE  T1.CO_EMPR = T3.CO_EMPR
   AND T1.CO_PROV = T3.CO_PROV
   AND  T1.CO_TIPO_DOCU = T3.CO_TIPO_DOCU
   AND  T1.NU_DOCU_PROV = T3.NU_DOCU_PROV
   AND T3.FE_EMIS >= @IDFE_INIC )
UNION ALL
SELECT  T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, 0, SUM(ISNULL(T1.IM_COMP,0)),
 SUM(ISNULL(T1.IM_CHED,0)), SUM(ISNULL(T1.IM_PAGO,0)), SUM(ISNULL(T1.IM_LETR,0)), SUM(ISNULL(T1.IM_ANTC,0)), 
 SUM(ISNULL(T1.IM_APLI,0)), SUM(ISNULL(T1.IM_AJUS,0)),
 PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T5.IM_MVTO_CONT
 
--ISNULL((PATINDEX(MAX(T4.TI_OPER), 'A')- PATINDEX(MAX(T4.TI_OPER), 'C')),0)* MAX(ISNULL(T4.IM_MVTO_CNTB,0))
FROM #TWDOCU_PROV_Q10_1 T1 --(INDEX = IX_TWDOCU_PROV_Q10_1)
LEFT OUTER JOIN
(SELECT ISNULL(SUM(PATINDEX(T2.TI_OPER, 'ABO')* T2.IM_MVTO_CNTB) - SUM(PATINDEX(T2.TI_OPER, 'CAR')* T2.IM_MVTO_CNTB),0) IM_MVTO_CONT
  FROM  OFIINTE..TXMVTO_AJTE T2 
  WHERE T2.CO_OPRC_CNTB = '013'
  AND  T2.CO_UNID_CNTB = '001'
  --AND  T2.NU_ANNO = @VNNU_ANNO
  --AND  T2.NU_MESE = @VNNU_MESE
  AND  (T2.NU_ANNO > @VNNU_ANNO_INIC
  OR  (T2.NU_ANNO = @VNNU_ANNO_INIC
  AND  T2.NU_MESE >= @VNNU_MESE_INIC))
  AND  (T2.NU_ANNO < @VNNU_ANNO_FINA
  OR  (T2.NU_ANNO = @VNNU_ANNO_FINA
  AND  T2.NU_MESE <= @VNNU_MESE_FINA))
  AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
  GROUP BY T2.CO_EMPR, T2.TI_AUXI_EMPR, T2.CO_AUXI_EMPR, T2.TI_DOCU, T2.NU_DOCU) T5
ON  T5.CO_EMPR = T1.CO_EMPR
AND T5.CO_AUXI_EMPR = T1.CO_PROV
AND T5.TI_DOCU = T1.CO_TIPO_DOCU
AND T5.NU_DOCU = T1.NU_DOCU_PROV 
WHERE  T1.FE_EMIS >= @IDFE_INIC
AND NOT EXISTS ( SELECT  T3.CO_EMPR, T3.CO_PROV, T3.CO_TIPO_DOCU, T3.NU_DOCU_PROV
   FROM  #TWDOCU_PROV_Q10_2 T3
   WHERE  T1.CO_EMPR = T3.CO_EMPR
   AND T1.CO_PROV = T3.CO_PROV
   AND  T1.CO_TIPO_DOCU = T3.CO_TIPO_DOCU
   AND  T1.NU_DOCU_PROV = T3.NU_DOCU_PROV)
   --AND T3.FE_EMIS >= @IDFE_INIC ) 
GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV

DELETE  #TWDOCU_PROV_Q10_3
WHERE  IM_SAIN = 0
AND IM_COMP = 0
AND IM_CHED = 0
AND IM_PAGO = 0
AND IM_LETR = 0
AND IM_ANTC = 0
AND IM_APLI = 0
AND IM_AJUS = 0

AND IM_AJUS_DICA = 0


UPDATE #TWDOCU_PROV_Q10_3
SET IM_SAIN = -IM_COMP - IM_CHED + IM_PAGO + IM_LETR + IM_ANTC + IM_AJUS - IM_APLI +
       PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA * -1
WHERE @ISCO_MONE != 'DOL'
AND   ABS(IM_SAIN + IM_COMP + IM_CHED - IM_PAGO - IM_LETR - IM_ANTC - IM_AJUS +
      IM_APLI + PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA ) <= 0.02
AND   ABS(IM_SAIN + IM_COMP + IM_CHED - IM_PAGO - IM_LETR - IM_ANTC - IM_AJUS +
      IM_APLI + PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA )  > 0


DECLARE CU_TWDOCU_PROV_Q10_3 CURSOR FOR 
SELECT  CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_COMP, IM_CHED, IM_PAGO, IM_LETR, IM_ANTC, IM_AJUS, IM_APLI
FROM  #TWDOCU_PROV_Q10_3
WHERE  @ISCO_MONE != 'DOL'
AND IM_SAIN = 0
AND ABS(IM_COMP + IM_CHED - IM_PAGO - IM_LETR - IM_ANTC + IM_APLI - IM_AJUS + IM_AJUS_DICA) <= 0.02
AND ABS(IM_COMP + IM_CHED - IM_PAGO - IM_LETR - IM_ANTC + IM_APLI - IM_AJUS + IM_AJUS_DICA) > 0

  -- PARA CUADRAR LOS MONTOS
  Open CU_TWDOCU_PROV_Q10_3
  FETCH CU_TWDOCU_PROV_Q10_3 INTO @CSCO_EMPR, @CSCO_PROV, @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV, @CNIM_COMP , 
    @CNIM_CHED, @CNIM_PAGO, @CNIM_LETR, @CNIM_ANTC, @CNIM_AJUS, @CNIM_APLI
  WHILE (@@FETCH_STATUS = 0)
  BEGIN
     IF (@@FETCH_STATUS < 0)
     Begin
  RAISERROR 20001 'FIN DE ARCHIVO'
  CLOSE CU_TWDOCU_PROV_Q10_3
  DEALLOCATE CU_TWDOCU_PROV_Q10_3
  RETURN
     End
 
 IF ABS(@CNIM_COMP) > 0
   UPDATE #TWDOCU_PROV_Q10_3
   SET  IM_COMP = - IM_CHED + IM_PAGO + IM_LETR + IM_ANTC + IM_AJUS - IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA * -1
   WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
 ELSE
   IF @CNIM_CHED > 0
     UPDATE #TWDOCU_PROV_Q10_3
     SET IM_CHED = - IM_COMP + IM_PAGO + IM_LETR + IM_ANTC + IM_AJUS - IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA * -1
     WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
   ELSE
     IF ABS(@CNIM_PAGO) > 0
       UPDATE #TWDOCU_PROV_Q10_3
       SET IM_PAGO = IM_COMP + IM_CHED - IM_LETR - IM_ANTC - IM_AJUS + IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA
       WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
     ELSE
       IF ABS(@CNIM_LETR) > 0
         UPDATE #TWDOCU_PROV_Q10_3
         SET IM_LETR = IM_COMP + IM_CHED - IM_PAGO - IM_ANTC - IM_AJUS + IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA
         WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
       ELSE
        IF @CNIM_ANTC > 0
           UPDATE #TWDOCU_PROV_Q10_3
           SET IM_ANTC = IM_COMP + IM_CHED - IM_PAGO - IM_LETR - IM_AJUS + IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA
           WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
  ELSE
          IF @CNIM_AJUS > 0
             UPDATE #TWDOCU_PROV_Q10_3
             SET IM_AJUS = IM_COMP + IM_CHED - IM_PAGO - IM_LETR - IM_ANTC + IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA
             WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3

     FETCH CU_TWDOCU_PROV_Q10_3 INTO @CSCO_EMPR, @CSCO_PROV, @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV, @CNIM_COMP , 
    @CNIM_CHED, @CNIM_PAGO, @CNIM_LETR, @CNIM_ANTC, @CNIM_AJUS, @CNIM_APLI
  END

CLOSE CU_TWDOCU_PROV_Q10_3
DEALLOCATE CU_TWDOCU_PROV_Q10_3

UPDATE #TWDOCU_PROV_Q10_3
SET IM_CONV = IM_SAIN + IM_COMP + IM_CHED - IM_PAGO - IM_LETR - IM_ANTC - IM_AJUS + IM_APLI

UPDATE #TWDOCU_PROV_Q10_3
SET CO_MONE = T2.CO_MONE
FROM #TWDOCU_PROV_Q10_3 T1, TMDOCU_PROV T2 
WHERE T1.CO_EMPR = T2.CO_EMPR
AND T1.CO_PROV = T2.CO_PROV
AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU
AND T1.NU_DOCU_PROV = T2.NU_DOCU_PROV

SELECT @VNNU_NULL = COUNT(NU_DOCU_PROV)
FROM #TWDOCU_PROV_Q10_3
WHERE CO_MONE IS NULL
GROUP BY CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV

--SELECT @VNNU_NULL

IF @VNNU_NULL > 0
  UPDATE #TWDOCU_PROV_Q10_3
  SET CO_MONE = T2.CO_MONE
  FROM #TWDOCU_PROV_Q10_3 T1, #TWDOCU_PROV_Q10_1 T2
  WHERE T1.CO_EMPR = T2.CO_EMPR
  AND T1.CO_PROV = T2.CO_PROV
  AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU
  AND T1.NU_DOCU_PROV = T2.NU_DOCU_PROV
  AND ( T2.TI_DETA = '6' 
  OR  T2.TI_DETA = '7')




IF @ISTI_REPO = 'D' /* ---------  REPORTE DETALLADO ----------*/
BEGIN 
 IF @ISDE_ORDE = '1'
  SELECT T1.CO_EMPR, T2.DE_NOMB, T3.TI_CLIE, T3.DE_TIPO_CLIE, T1.CO_PROV, T3.NO_AUXI, 
   T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, IM_SAIN, T1.IM_COMP,
   T1.IM_CHED, T1.IM_PAGO, T1.IM_LETR, T1.IM_ANTC, T1.IM_AJUS,
   PATINDEX('0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA, 
   T1.IM_APLI, 
   CASE T1.CO_MONE
    WHEN 'DOL' THEN T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0)
    ELSE T1.IM_CONV
   END 
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3--, TTTIPO_PROV T4
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  ORDER BY T1.CO_EMPR, T3.TI_CLIE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV
 ELSE
  SELECT T1.CO_EMPR, T2.DE_NOMB, T3.TI_CLIE, T3.DE_TIPO_CLIE, T1.CO_PROV, T3.NO_AUXI, 
   T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, IM_SAIN, T1.IM_COMP,
   T1.IM_CHED, T1.IM_PAGO, T1.IM_LETR, T1.IM_ANTC, T1.IM_AJUS,
   PATINDEX('0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA,
   CASE T1.CO_MONE
    WHEN 'DOL' THEN T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0)
    ELSE T1.IM_CONV
   END 
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  ORDER BY T1.CO_EMPR, T3.TI_CLIE, T3.NO_AUXI, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV
END

IF @ISTI_REPO = 'R' /* ---------  REPORTE RESUMIDO ----------*/
BEGIN
 IF @ISDE_ORDE = '1'
  SELECT  T1.CO_EMPR, T2.DE_NOMB, MAX(T3.TI_CLIE), MAX(T3.DE_TIPO_CLIE), T1.CO_PROV, T3.NO_AUXI, 
   SUM(ISNULL(IM_SAIN,0)), SUM(ISNULL(T1.IM_COMP,0)), SUM(ISNULL(T1.IM_CHED,0)), 
   SUM(ISNULL(T1.IM_PAGO,0)), SUM(ISNULL(T1.IM_LETR,0)), SUM(ISNULL(T1.IM_ANTC,0)), 
   SUM(ISNULL(T1.IM_AJUS,0)), PATINDEX('0', 
   LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * SUM(ISNULL(T1.IM_AJUS_DICA,0)), 
   SUM(ISNULL(T1.IM_APLI,0)),
   CASE MAX(T1.CO_MONE)
    WHEN 'DOL' THEN SUM(T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0))
    ELSE SUM(T1.IM_CONV)
   END 
   /*SUM(ISNULL(PATINDEX(T1.CO_MONE, 'DOL') * T1.IM_CONV +
   PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA, 0))*/
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  GROUP BY T1.CO_EMPR, T2.DE_NOMB, T1.CO_PROV, T3.NO_AUXI
  ORDER BY 1, 3, 5

 ELSE
  SELECT  T1.CO_EMPR, T2.DE_NOMB, MAX(T3.TI_CLIE), MAX(T3.DE_TIPO_CLIE), T1.CO_PROV, T3.NO_AUXI, 
   SUM(ISNULL(IM_SAIN,0)), SUM(ISNULL(T1.IM_COMP,0)), SUM(ISNULL(T1.IM_CHED,0)), 
   SUM(ISNULL(T1.IM_PAGO,0)), SUM(ISNULL(T1.IM_LETR,0)), SUM(ISNULL(T1.IM_ANTC,0)), 
   SUM(ISNULL(T1.IM_AJUS,0)), PATINDEX('0', 
   LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * SUM(ISNULL(T1.IM_AJUS_DICA,0)), 
   SUM(ISNULL(T1.IM_APLI,0)),
   CASE MAX(T1.CO_MONE)
    WHEN 'DOL' THEN SUM(T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0))
    ELSE SUM(T1.IM_CONV)
   END 
   /*SUM(ISNULL(PATINDEX(T1.CO_MONE, 'DOL') * T1.IM_CONV +
   PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA, 0))*/
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  GROUP BY T1.CO_EMPR, T2.DE_NOMB, T1.CO_PROV, T3.NO_AUXI
  ORDER BY 1, 3, 6

END
END



IF @ISTI_DOCU = 'L'
BEGIN

-- TIPOS DE DETALLE(TI_DETA = '1' AL '6')
--1.- LETRAS DEL MES
--2.- PAGOS
--3.- ADELANTOS
--4.- AJUSTES
--5.- APLICACIONES (ANTICIPOS, RENOVACIONES)
--6.- RENOVACION DE LETRAS

--1.- LETRAS DEL MES
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_LETR, TI_DETA)

  Select T1.CO_EMPR, 'LET', T1.NU_LETR_PROV, T1.CO_PROV, T2.FE_CANJ,
  T4.CO_MONE, T2.FA_TIPO_CAMB, T4.IM_TOTA, '1A'
  From  TDCANJ_PROV T1, TCCANJ_PROV T2, TMLETR_PROV T4
  Where T4.CO_EMPR = @ISCO_EMPR
  AND  ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL) 
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  AND  T2.FE_CANJ <= @IDFE_FINA
  AND  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_PROV = T2.CO_PROV
  AND  T1.NU_CANJ = T2.NU_CANJ
  AND  T2.TI_SITU = 'ACT'
  AND  T1.CO_EMPR = T4.CO_EMPR
  AND  T1.CO_PROV = T4.CO_PROV
  AND  T1.NU_LETR_PROV = T4.NU_LETR_PROV
  
  UNION ALL

  Select T1.CO_EMPR, 'LET', T1.NU_LETR_PROV, T1.CO_PROV, T1.FE_EMIS,
         T1.CO_MONE, T1.FA_TIPO_CAMB, T1.IM_TOTA, '1B'
  From   TMLETR_PROV T1
  Where  T1.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND T1.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL) 
  AND    PatIndex( + '%'+T1.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  AND    T1.FE_EMIS <= @IDFE_INIC
  AND    T1.CO_ESTA_DOCU != 'ANU'

  UNION ALL

  SELECT T1.CO_EMPR, 'LET', T4.NU_LETR_PROV, T1.CO_PROV, T1.FE_RENO,
  T4.CO_MONE, T1.FA_TIPO_CAMB, T4.IM_TOTA, '1'
  From   TCRENO_PROV T1 , TDRENO_PROV T2, TMLETR_PROV T4
  Where T4.CO_EMPR = @ISCO_EMPR
  AND   ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND   PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  And   T1.FE_RENO <= @IDFE_INIC
  AND   T1.TI_SITU != 'ANU'
  AND   T1.CO_EMPR = T2.CO_EMPR  
  AND   T1.CO_PROV = T2.CO_PROV
  AND   T1.NU_RENO = T2.NU_RENO
  AND   T2.CO_EMPR = T4.CO_EMPR
  AND   T2.CO_PROV = T4.CO_PROV
  AND   T2.NU_LETR_PROV = T4.NU_LETR_PROV 
  AND   T4.CO_ESTA_DOCU != 'ANU' 


--2.- PAGOS
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)

  Select T1.CO_EMPR, 'LET', T4.NU_LETR_PROV, T4.CO_PROV, T2.FE_OPER,
  T4.CO_MONE, T2.FA_TIPO_CAMB, 
  (PatIndex(T1.ST_CIER_DOCU, 'N')) * T1.IM_CONV_DOCU +  
  (PatIndex(T1.ST_CIER_DOCU, 'S')) * T1.IM_SALD_DOCU,
  '2'
  From  TDMOVI_BANC T1, TCMOVI_BANC T2, TMLETR_PROV T4
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  And    T1.TI_MOVI_BANC = 'E' 
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_UNID_CONC = T2.CO_UNID_CONC
  And    T1.CO_BANC = T2.CO_BANC  
  And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
  And    T1.AA_BNCO = T2.AA_BNCO
  And    T1.MM_BNCO = T2.MM_BNCO 
  And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
  And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
  AND    T1.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_ENTI = T4.CO_PROV
  AND    T1.NU_DOCU_ENTI = T4.NU_LETR_PROV
  AND    T1.TI_DOCU_ENTI = 'LET'
  AND    NOT EXISTS ( SELECT T6.CO_EMPR
         FROM TTTIOP_AJUS T6
         WHERE T6.CO_EMPR = T2.CO_EMPR
         AND   T6.CO_TIPO_OPER = T2.CO_TIPO_OPER)

  UNION ALL
  Select T1.CO_EMPR, 'LET', T4.NU_LETR_PROV, T4.CO_PROV, T2.FE_OPER,
  T4.CO_MONE, T2.FA_TIPO_CAMB,
  (PatIndex(T1.ST_CIER_DOCU, 'N')) * T1.IM_CONV_DOCU +  
  (PatIndex(T1.ST_CIER_DOCU, 'S')) * T1.IM_SALD_DOCU,
  '2'
  From   TDMOVI_CAJA T1, TCMOVI_CAJA T2, TMLETR_PROV T4
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  And    T1.TI_MOVI = 'E'
  And    T1.TI_ENTI = @ISTI_AUXI_PROV
  And    T2.FE_OPER  <= @IDFE_FINA
  And    T2.TI_SITU = 'ACT' 
  And    T1.CO_EMPR = T2.CO_EMPR  
  And    T1.CO_CAJA = T2.CO_CAJA
  And    T1.AA_CAJA = T2.AA_CAJA
  And    T1.MM_CAJA = T2.MM_CAJA 
  And    T1.TI_MOVI = T2.TI_MOVI
  And    T1.NU_COMP_CAJA = T2.NU_COMP_CAJA
  And    T1.CO_EMPR = T4.CO_EMPR
  AND    T1.CO_ENTI = T4.CO_PROV
  And    T1.NU_DOCU_ENTI = T4.NU_LETR_PROV
  AND    T1.TI_DOCU_ENTI = 'LET'
  AND    NOT EXISTS ( SELECT T6.CO_EMPR
         FROM TTTIOP_AJUS T6
         WHERE T6.CO_EMPR = T2.CO_EMPR
         AND  T6.CO_TIPO_OPER = T2.CO_TIPO_OPER)

-- 3. ADELANTOS

--4.- AJUSTES
--APLICACIONES DE NOTAS DE CREDITO
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_AJUS, TI_DETA)
  SELECT T1.CO_EMPR, 'LET', T4.NU_LETR_PROV, T1.CO_PROV, T1.FE_AMAR,
   T4.CO_MONE, T1.FA_TIPO_CAMB,  
 (PATINDEX(T2.ST_CIER_DOCU, 'N') * T2.IM_PAGO_DEST +
 PATINDEX(T2.ST_CIER_DOCU, 'S') * T2.IM_SALD_DEST ) , '4'
  From   TCAMAR_NCPR T1 , TDAMAR_NCPR T2, TMLETR_PROV T4
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND   ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  And    T1.FE_AMAR  <= @IDFE_FINA
  AND    T1.TI_SITU = 'ACT'
  AND    T1.CO_PROV = T4.CO_PROV
  AND    T1.CO_EMPR = T2.CO_EMPR  
  AND    T1.NU_AMAR = T2.NU_AMAR
  AND    T2.CO_EMPR = T4.CO_EMPR
  AND    T2.NU_DOCU_DEST = T4.NU_LETR_PROV 
  AND    T2.CO_TIDO_DEST = 'LET'

--5.- APLICACIONES
  --DOCUMENTOS A LOS QUE SE APLICAN LOS ANTICIPOS
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_APLI, TI_DETA)

  Select T1.CO_EMPR, 'LET', T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_AMAR, 
         T4.CO_MONE, T2.FA_TIPO_CAMB, ISNULL(T1.IM_CONV_DOCU,0)* -1, '5'
  From   TDAMAR_ANTC T1, TCAMAR_ANTC T2, TMLETR_PROV T4
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  And    T2.FE_AMAR <= @IDFE_FINA
  AND    T2.TI_SITU != 'ANU'
  AND    T1.CO_EMPR = T2.CO_EMPR  
  AND    T1.NU_AMAR = T2.NU_AMAR
  AND    T1.CO_EMPR = T4.CO_EMPR
  AND    T2.CO_ENTI = T4.CO_PROV
  AND    T1.TI_DOCU_ENTI = 'LET'
  AND    T1.NU_DOCU_ENTI = T4.NU_LETR_PROV 
  AND    T1.TI_ENTI = @ISTI_AUXI_PROV
  AND    T4.CO_ESTA_DOCU != 'ANU' 
  UNION ALL
  SELECT T1.CO_EMPR, 'LET', T4.NU_LETR_PROV, T1.CO_PROV, T1.FE_RENO,
  T4.CO_MONE, T1.FA_TIPO_CAMB, T2.IM_RENO_MDOC * -1, '5'
  From   TCRENO_PROV T1 , TDRENO_PROV T2, TMLETR_PROV T4
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  And    T1.FE_RENO  <= @IDFE_FINA
  AND    T1.TI_SITU != 'ANU'
  AND    T1.CO_EMPR = T2.CO_EMPR  
  AND    T1.CO_PROV = T2.CO_PROV
  AND    T1.NU_RENO = T2.NU_RENO
  AND    T2.CO_EMPR = T4.CO_EMPR
  AND    T2.CO_PROV = T4.CO_PROV
  AND    T2.NU_DOCU_PROV = T4.NU_LETR_PROV 
  AND    T2.CO_TIPO_DOCU = 'LET'
  AND    T4.CO_ESTA_DOCU != 'ANU'

--6.- RENOVACION DE LETRAS
  INSERT INTO #TWDOCU_PROV_Q10_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,
  CO_MONE, FA_TIPO_CAMB, IM_CHED, TI_DETA)
  SELECT T1.CO_EMPR, 'LET', T4.NU_LETR_PROV, T1.CO_PROV, T1.FE_RENO,
  T4.CO_MONE, T1.FA_TIPO_CAMB, T4.IM_TOTA, '6'
  From   TCRENO_PROV T1 , TDRENO_PROV T2, TMLETR_PROV T4
  Where  T4.CO_EMPR = @ISCO_EMPR
  AND    ((@ISCO_PROV IS NOT NULL AND T4.CO_PROV = @ISCO_PROV) OR @ISCO_PROV IS NULL)
  AND    PatIndex( + '%'+T4.TI_PROV+'%', + @ISDE_TIPO_PROV )>0  
  AND    T1.CO_EMPR =  T4.CO_EMPR
  And    T1.FE_RENO <= @IDFE_FINA
  AND    T1.TI_SITU != 'ANU'
  AND    T1.CO_EMPR = T2.CO_EMPR  
  AND    T1.CO_PROV = T2.CO_PROV
  AND    T1.NU_RENO = T2.NU_RENO
  AND    T2.CO_EMPR = T4.CO_EMPR
  AND    T2.CO_PROV = T4.CO_PROV
  AND    T2.NU_LETR_PROV = T4.NU_LETR_PROV 
  AND    T4.CO_ESTA_DOCU != 'ANU' 

IF @ISCO_MONE = 'DOL'
  UPDATE  #TWDOCU_PROV_Q10_1
  SET IM_LETR = ROUND(IM_LETR / FA_TIPO_CAMB,2),
  IM_PAGO = ROUND(IM_PAGO / FA_TIPO_CAMB,2),
  IM_ANTC = ROUND(IM_ANTC / FA_TIPO_CAMB,2),
  IM_APLI = ROUND(IM_APLI / FA_TIPO_CAMB,2),
  IM_AJUS = ROUND(IM_AJUS / FA_TIPO_CAMB,2),
  IM_CHED = ROUND(IM_CHED / FA_TIPO_CAMB,2)
 WHERE  CO_MONE != @ISCO_MONE
ELSE
 UPDATE #TWDOCU_PROV_Q10_1
 SET IM_LETR = ROUND(IM_LETR * FA_TIPO_CAMB,2),
  IM_PAGO = ROUND(IM_PAGO * FA_TIPO_CAMB,2),
  IM_ANTC = ROUND(IM_ANTC * FA_TIPO_CAMB,2),
  IM_APLI = ROUND(IM_APLI * FA_TIPO_CAMB,2),
  IM_AJUS = ROUND(IM_AJUS * FA_TIPO_CAMB,2),
  IM_CHED = ROUND(IM_CHED * FA_TIPO_CAMB,2)
 WHERE CO_MONE != @ISCO_MONE

/*SELECT CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, 
 IM_LETR, IM_PAGO, IM_ANTC, IM_APLI, IM_AJUS, IM_AJUS_DICA, TI_DETA
FROM #TWDOCU_PROV_Q10_1
ORDER BY CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV */

--SALDOS INICIALES

 INSERT INTO #TWDOCU_PROV_Q10_2(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_SAIN) 
 SELECT T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, SUM(ISNULL(T1.IM_LETR,0)) +
 SUM(ISNULL(T1.IM_CHED,0)) - SUM(ISNULL(T1.IM_PAGO,0)) + 
 SUM(ISNULL(T1.IM_APLI,0)) - SUM(ISNULL(T1.IM_AJUS,0)) 
 FROM #TWDOCU_PROV_Q10_1 T1 --(INDEX = IX_TWDOCU_PROV_Q10_2)
 WHERE T1.FE_EMIS < @IDFE_INIC
 GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV

 INSERT INTO #TWDOCU_PROV_Q10_2A(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_SAIN) 
 SELECT T4.CO_EMPR, T4.CO_AUXI_EMPR, T4.TI_DOCU, T4.NU_DOCU,
 PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * 
 ISNULL(SUM(PATINDEX(T4.TI_OPER, 'ABO')* T4.IM_MVTO_CNTB) - SUM(PATINDEX(T4.TI_OPER, 'CAR')* T4.IM_MVTO_CNTB),0)
 FROM  OFIINTE..TXMVTO_AJTE T4 
 WHERE T4.CO_OPRC_CNTB = '013'
 AND  T4.CO_UNID_CNTB = '001'
 AND  (T4.NU_ANNO < @VNNU_ANNO_INIC
 OR  (T4.NU_ANNO = @VNNU_ANNO_INIC
 AND  T4.NU_MESE < @VNNU_MESE_INIC))
 AND  T4.TI_AUXI_EMPR = @ISTI_AUXI_PROV
 GROUP BY T4.CO_EMPR, T4.TI_AUXI_EMPR, T4.CO_AUXI_EMPR, T4.TI_DOCU, T4.NU_DOCU

 UPDATE #TWDOCU_PROV_Q10_2
 SET IM_SAIN = T1.IM_SAIN + T2.IM_SAIN 
 FROM #TWDOCU_PROV_Q10_2 T1, #TWDOCU_PROV_Q10_2A T2
 WHERE T1.CO_EMPR = T2.CO_EMPR 
 AND   T1.CO_PROV = T2.CO_PROV 
 AND   T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU 
 AND   T1.NU_DOCU_PROV = T2.NU_DOCU_PROV 


UPDATE  #TWDOCU_PROV_Q10_2
SET  IM_SAIN = 0
WHERE  @ISCO_MONE != 'DOL'
AND ABS(IM_SAIN) <= 0.02
AND  ABS(IM_SAIN) > 0

--SELECT * FROM #TWDOCU_PROV_Q10_2

INSERT INTO #TWDOCU_PROV_Q10_3(CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_SAIN,
 IM_LETR, IM_CHED, IM_PAGO, IM_APLI, IM_AJUS, IM_AJUS_DICA)
--LETRAS GENERADAS ANTES DEL PERIODO, TIENEN PAGOS
SELECT  T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, MAX(T2.IM_SAIN), SUM(ISNULL(T1.IM_LETR,0)),
 SUM(ISNULL(T1.IM_CHED,0)), SUM(ISNULL(T1.IM_PAGO,0)), 
 SUM(ISNULL(T1.IM_APLI,0)), SUM(ISNULL(T1.IM_AJUS,0)), 
 PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T5.IM_MVTO_CONT 
FROM #TWDOCU_PROV_Q10_1 T1 --(INDEX = IX_TWDOCU_PROV_Q10_2), 
LEFT OUTER JOIN
(SELECT ISNULL(SUM(PATINDEX(T4.TI_OPER, 'ABO')* T4.IM_MVTO_CNTB) - SUM(PATINDEX(T4.TI_OPER, 'CAR')* T4.IM_MVTO_CNTB),0) IM_MVTO_CONT
 FROM  OFIINTE..TXMVTO_AJTE T4 
 WHERE T4.CO_OPRC_CNTB = '013'
 AND  T4.CO_UNID_CNTB = '001'
 --AND  T4.NU_ANNO = @VNNU_ANNO
 --AND  T4.NU_MESE = @VNNU_MESE
 AND  (T4.NU_ANNO > @VNNU_ANNO_INIC
 OR  (T4.NU_ANNO = @VNNU_ANNO_INIC
 AND  T4.NU_MESE >= @VNNU_MESE_INIC))
 AND  (T4.NU_ANNO < @VNNU_ANNO_FINA
 OR  (T4.NU_ANNO = @VNNU_ANNO_FINA
 AND  T4.NU_MESE <= @VNNU_MESE_FINA))
 AND  T4.TI_AUXI_EMPR = @ISTI_AUXI_PROV 
 GROUP BY T4.CO_EMPR, T4.TI_AUXI_EMPR, T4.CO_AUXI_EMPR, T4.TI_DOCU, T4.NU_DOCU) T5
ON  T5.CO_EMPR = T1.CO_EMPR
AND T5.CO_AUXI_EMPR = T1.CO_PROV
AND T5.TI_DOCU = T1.CO_TIPO_DOCU
AND T5.NU_DOCU = T1.NU_DOCU_PROV 
INNER JOIN #TWDOCU_PROV_Q10_2 T2
ON  T1.CO_EMPR = T2.CO_EMPR
AND T1.CO_PROV = T2.CO_PROV
AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU
AND T1.NU_DOCU_PROV = T2.NU_DOCU_PROV
Where T1.FE_EMIS >= @IDFE_INIC
GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV

UNION ALL
----LETRAS GENERADAS EN EL PERIODO, NO TIENEN PAGOS
SELECT T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.IM_SAIN, 0, 0, 0, 0, 0,
PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T5.IM_MVTO_CONT

FROM #TWDOCU_PROV_Q10_2 T1
LEFT OUTER JOIN
(SELECT ISNULL(SUM(PATINDEX(T4.TI_OPER, 'ABO')* T4.IM_MVTO_CNTB) - SUM(PATINDEX(T4.TI_OPER, 'CAR')* T4.IM_MVTO_CNTB),0) IM_MVTO_CONT
 FROM  OFIINTE..TXMVTO_AJTE T4 
 WHERE T4.CO_OPRC_CNTB = '013'
 AND  T4.CO_UNID_CNTB = '001'
 --AND  T4.NU_ANNO = @VNNU_ANNO
 --AND  T4.NU_MESE = @VNNU_MESE
 AND  (T4.NU_ANNO > @VNNU_ANNO_INIC
 OR  (T4.NU_ANNO = @VNNU_ANNO_INIC

 AND  T4.NU_MESE >= @VNNU_MESE_INIC))
 AND  (T4.NU_ANNO < @VNNU_ANNO_FINA
 OR  (T4.NU_ANNO = @VNNU_ANNO_FINA
 AND  T4.NU_MESE <= @VNNU_MESE_FINA))
 AND  T4.TI_AUXI_EMPR = @ISTI_AUXI_PROV 
 GROUP BY T4.CO_EMPR, T4.TI_AUXI_EMPR, T4.CO_AUXI_EMPR, T4.TI_DOCU, T4.NU_DOCU) T5
ON  T5.CO_EMPR = T1.CO_EMPR
AND T5.CO_AUXI_EMPR = T1.CO_PROV
AND T5.TI_DOCU = T1.CO_TIPO_DOCU
AND T5.NU_DOCU = T1.NU_DOCU_PROV 
WHERE  NOT EXISTS ( SELECT  T3.CO_EMPR, T3.CO_PROV, T3.CO_TIPO_DOCU, T3.NU_DOCU_PROV
   FROM  #TWDOCU_PROV_Q10_1 T3 --(INDEX = IX_TWDOCU_PROV_Q10_2)
   WHERE  T1.CO_EMPR = T3.CO_EMPR
   AND T1.CO_PROV = T3.CO_PROV
   AND  T1.CO_TIPO_DOCU = T3.CO_TIPO_DOCU
   AND  T1.NU_DOCU_PROV = T3.NU_DOCU_PROV
   AND T3.FE_EMIS >= @IDFE_INIC )

UNION ALL
----LETRAS GENERADAS EN EL PERIODO, TIENEN PAGOS
SELECT  T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, 0, SUM(ISNULL(T1.IM_LETR,0)),
 SUM(ISNULL(T1.IM_CHED,0)), SUM(ISNULL(T1.IM_PAGO,0)), 
 SUM(ISNULL(T1.IM_APLI,0)), SUM(ISNULL(T1.IM_AJUS,0)), 
 PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T5.IM_MVTO_CONT
 
FROM #TWDOCU_PROV_Q10_1 T1 --(INDEX = IX_TWDOCU_PROV_Q10_2)
LEFT OUTER JOIN
(SELECT ISNULL(SUM(PATINDEX(T4.TI_OPER, 'ABO')* T4.IM_MVTO_CNTB) - SUM(PATINDEX(T4.TI_OPER, 'CAR')* T4.IM_MVTO_CNTB),0) IM_MVTO_CONT
 FROM  OFIINTE..TXMVTO_AJTE T4 
 WHERE T4.CO_OPRC_CNTB = '013'
 AND  T4.CO_UNID_CNTB = '001'
 --AND  T4.NU_ANNO = @VNNU_ANNO
 --AND  T4.NU_MESE = @VNNU_MESE
 AND  (T4.NU_ANNO > @VNNU_ANNO_INIC
 OR  (T4.NU_ANNO = @VNNU_ANNO_INIC
 AND  T4.NU_MESE >= @VNNU_MESE_INIC))
 AND  (T4.NU_ANNO < @VNNU_ANNO_FINA
 OR  (T4.NU_ANNO = @VNNU_ANNO_FINA
 AND  T4.NU_MESE <= @VNNU_MESE_FINA))
 AND  T4.TI_AUXI_EMPR = @ISTI_AUXI_PROV 
 GROUP BY T4.CO_EMPR, T4.TI_AUXI_EMPR, T4.CO_AUXI_EMPR, T4.TI_DOCU, T4.NU_DOCU) T5
ON  T5.CO_EMPR = T1.CO_EMPR
AND T5.CO_AUXI_EMPR = T1.CO_PROV
AND T5.TI_DOCU = T1.CO_TIPO_DOCU
AND T5.NU_DOCU = T1.NU_DOCU_PROV 
WHERE  T1.FE_EMIS >= @IDFE_INIC
AND NOT EXISTS ( SELECT  T3.CO_EMPR, T3.CO_PROV, T3.CO_TIPO_DOCU, T3.NU_DOCU_PROV
   FROM  #TWDOCU_PROV_Q10_2 T3
   WHERE  T1.CO_EMPR = T3.CO_EMPR
   AND T1.CO_PROV = T3.CO_PROV
   AND  T1.CO_TIPO_DOCU = T3.CO_TIPO_DOCU
   AND  T1.NU_DOCU_PROV = T3.NU_DOCU_PROV)
   --AND T3.FE_EMIS >= @IDFE_INIC ) 
GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV

UPDATE #TWDOCU_PROV_Q10_3
SET IM_SAIN = -IM_LETR - IM_RENO + IM_PAGO + IM_AJUS - IM_APLI +
  PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA * -1
WHERE @ISCO_MONE != 'DOL'
AND   ABS(IM_SAIN + IM_LETR + IM_RENO - IM_PAGO - IM_AJUS +
      IM_APLI + PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA ) <= 0.02
AND   ABS(IM_SAIN + IM_LETR + IM_RENO - IM_PAGO - IM_AJUS +
      IM_APLI + PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA )  > 0

DELETE  #TWDOCU_PROV_Q10_3
WHERE  IM_SAIN = 0
AND IM_LETR = 0
AND IM_RENO = 0
AND IM_PAGO = 0
AND IM_ANTC = 0
AND IM_APLI = 0
AND IM_AJUS = 0
AND IM_AJUS_DICA = 0

DECLARE CU_TWDOCU_PROV_Q10_3 CURSOR FOR 
SELECT  CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, IM_LETR, IM_RENO, IM_PAGO, IM_AJUS, IM_APLI
FROM  #TWDOCU_PROV_Q10_3
WHERE  @ISCO_MONE != 'DOL'
AND IM_SAIN = 0
AND ABS(IM_LETR + IM_RENO - IM_PAGO + IM_APLI - IM_AJUS + IM_AJUS_DICA) <= 0.02
AND ABS(IM_LETR + IM_RENO - IM_PAGO + IM_APLI - IM_AJUS + IM_AJUS_DICA) > 0

  -- PARA CUADRAR LOS MONTOS
  Open CU_TWDOCU_PROV_Q10_3
  FETCH CU_TWDOCU_PROV_Q10_3 INTO @CSCO_EMPR, @CSCO_PROV, @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV, @CNIM_LETR, 
    @CNIM_RENO, @CNIM_PAGO, @CNIM_AJUS, @CNIM_APLI
  WHILE (@@FETCH_STATUS = 0)
  BEGIN
     IF (@@FETCH_STATUS < 0)
     Begin
  RAISERROR 20001 'FIN DE ARCHIVO'
  CLOSE CU_TWDOCU_PROV_Q10_3
  DEALLOCATE CU_TWDOCU_PROV_Q10_3
  RETURN
     End
 
 IF @CNIM_LETR > 0
   UPDATE #TWDOCU_PROV_Q10_3
   SET  IM_LETR = - IM_RENO + IM_PAGO + IM_AJUS - IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA * -1
   WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
 ELSE
   IF @CNIM_RENO > 0
     UPDATE #TWDOCU_PROV_Q10_3
     SET IM_RENO = - IM_LETR + IM_PAGO + IM_AJUS - IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA * -1
     WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
   ELSE
     IF @CNIM_PAGO > 0
       UPDATE #TWDOCU_PROV_Q10_3
       SET IM_PAGO = IM_LETR + IM_RENO - IM_AJUS + IM_APLI +
         PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA
       WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3
     ELSE
          IF @CNIM_AJUS > 0
             UPDATE #TWDOCU_PROV_Q10_3
             SET IM_AJUS = IM_LETR + IM_RENO - IM_PAGO + IM_APLI +
           PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA
             WHERE CURRENT OF CU_TWDOCU_PROV_Q10_3

     FETCH CU_TWDOCU_PROV_Q10_3 INTO @CSCO_EMPR, @CSCO_PROV, @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV, @CNIM_LETR, 
    @CNIM_RENO, @CNIM_PAGO, @CNIM_AJUS, @CNIM_APLI
  END

CLOSE CU_TWDOCU_PROV_Q10_3
DEALLOCATE CU_TWDOCU_PROV_Q10_3


UPDATE #TWDOCU_PROV_Q10_3
SET IM_CONV = IM_SAIN + IM_LETR + IM_RENO - IM_PAGO - IM_AJUS + IM_APLI

UPDATE #TWDOCU_PROV_Q10_3
SET CO_MONE = T2.CO_MONE
FROM #TWDOCU_PROV_Q10_3 T1, TMLETR_PROV T2 --(INDEX = IX_TMDOCU_PROV_01)
WHERE T1.CO_EMPR = T2.CO_EMPR
AND T1.CO_PROV = T2.CO_PROV
--AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU
AND T1.NU_DOCU_PROV = T2.NU_LETR_PROV

SELECT @VNNU_NULL = COUNT(NU_DOCU_PROV)
FROM #TWDOCU_PROV_Q10_3
WHERE CO_MONE IS NULL
GROUP BY CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV

--SELECT @VNNU_NULL

IF @VNNU_NULL > 0
  UPDATE #TWDOCU_PROV_Q10_3
  SET CO_MONE = T2.CO_MONE
  FROM #TWDOCU_PROV_Q10_3 T1, #TWDOCU_PROV_Q10_1 T2 --(INDEX = IX_TWDOCU_PROV_Q10_1)
  WHERE T1.CO_TIPO_DOCU != 'LET'
  AND T1.CO_EMPR = T2.CO_EMPR
  AND T1.CO_PROV = T2.CO_PROV
  AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU
  AND T1.NU_DOCU_PROV = T2.NU_DOCU_PROV


--SELECT * FROM #TWDOCU_PROV_Q10_3
--ORDER BY CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV  

IF @ISTI_REPO = 'D' /* ---------  REPORTE DETALLADO ----------*/
BEGIN
 IF @ISDE_ORDE = '1'
  SELECT T1.CO_EMPR, T2.DE_NOMB, T3.TI_CLIE, T3.DE_TIPO_CLIE, T1.CO_PROV, T3.NO_AUXI, 
   T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, IM_SAIN, T1.IM_LETR, T1.IM_CHED,
   T1.IM_PAGO, T1.IM_APLI, T1.IM_AJUS, 
   PATINDEX('0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA,
   CASE T1.CO_MONE
    WHEN 'DOL' THEN T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0)
    ELSE T1.IM_CONV
   END   
   /*ISNULL(PATINDEX(T1.CO_MONE, 'DOL') * T1.IM_CONV +
   PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA, 0) */
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  ORDER BY T1.CO_EMPR, T3.TI_CLIE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV
 ELSE
  SELECT T1.CO_EMPR, T2.DE_NOMB, T3.TI_CLIE, T3.DE_TIPO_CLIE, T1.CO_PROV, T3.NO_AUXI, 
   T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, IM_SAIN, T1.IM_LETR, T1.IM_CHED,
   T1.IM_PAGO, T1.IM_APLI, T1.IM_AJUS, 
   PATINDEX('0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA,
   CASE T1.CO_MONE
    WHEN 'DOL' THEN T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0)
    ELSE T1.IM_CONV
   END 
   /*ISNULL(PATINDEX(T1.CO_MONE, 'DOL') * T1.IM_CONV +
   PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * IM_AJUS_DICA, 0)*/
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  ORDER BY T1.CO_EMPR, T3.TI_CLIE, T3.NO_AUXI, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV

END

IF @ISTI_REPO = 'R' /* ---------  REPORTE RESUMIDO ----------*/
BEGIN
 IF @ISDE_ORDE = '1'
  SELECT T1.CO_EMPR, T2.DE_NOMB, MAX(T3.TI_CLIE), MAX(T3.DE_TIPO_CLIE), T1.CO_PROV, T3.NO_AUXI, SUM(ISNULL(IM_SAIN,0)), 
    SUM(ISNULL(T1.IM_LETR,0)), SUM(ISNULL(T1.IM_CHED,0)), SUM(ISNULL(T1.IM_PAGO,0)), 
    SUM(ISNULL(T1.IM_APLI,0)), SUM(ISNULL(T1.IM_AJUS,0)), 
    PATINDEX('0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * SUM(ISNULL(T1.IM_AJUS_DICA,0)),
    CASE MAX(T1.CO_MONE)
    WHEN 'DOL' THEN SUM(T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0))
    ELSE SUM(T1.IM_CONV)
    END 
    /*SUM(ISNULL(PATINDEX(T1.CO_MONE, 'DOL') * T1.IM_CONV +
   PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA, 0))*/
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  GROUP BY T1.CO_EMPR, T2.DE_NOMB, T1.CO_PROV, T3.NO_AUXI
  ORDER BY 1, 3, 5


 ELSE
  SELECT T1.CO_EMPR, T2.DE_NOMB, MAX(T3.TI_CLIE), MAX(T3.DE_TIPO_CLIE), T1.CO_PROV, T3.NO_AUXI, SUM(ISNULL(IM_SAIN,0)), 
 SUM(ISNULL(T1.IM_LETR,0)), SUM(ISNULL(T1.IM_CHED,0)), SUM(ISNULL(T1.IM_PAGO,0)), 
    SUM(ISNULL(T1.IM_APLI,0)), SUM(ISNULL(T1.IM_AJUS,0)), 
    PATINDEX('0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * SUM(ISNULL(T1.IM_AJUS_DICA,0)),
   CASE MAX(T1.CO_MONE)
    WHEN 'DOL' THEN SUM(T1.IM_CONV + ISNULL(T1.IM_AJUS_DICA, 0))
    ELSE SUM(T1.IM_CONV)
   END 
   /* SUM(ISNULL(PATINDEX(T1.CO_MONE, 'DOL') * T1.IM_CONV +
   PATINDEX( '0', LTRIM(RTRIM(STR(PATINDEX(@ISCO_MONE, 'DOL'))))) * T1.IM_AJUS_DICA, 0))*/
  FROM  #TWDOCU_PROV_Q10_3 T1, TMEMPR T2, TMAUXI_EMPR T3
  WHERE  T1.CO_EMPR = T2.CO_EMPR
  AND  T1.CO_EMPR = T3.CO_EMPR
  AND  T1.CO_PROV = T3.CO_AUXI_EMPR
  AND T3.TI_AUXI_EMPR = @ISTI_AUXI_PROV
  GROUP BY T1.CO_EMPR, T2.DE_NOMB, T1.CO_PROV, T3.NO_AUXI
  ORDER BY 1, 3, 6
END 

END

DROP TABLE #TWDOCU_PROV_Q10_1
DROP TABLE #TWDOCU_PROV_Q10_2
DROP TABLE #TWDOCU_PROV_Q10_2A
DROP TABLE #TWDOCU_PROV_Q10_3

RETURN
/***********************FIN**********************************/


GO
